package pro.shushi.pamirs.hr.core.action.eam;

import org.springframework.stereotype.Component;
import pro.shushi.pamirs.framework.connectors.data.sql.query.QueryWrapper;
import pro.shushi.pamirs.hr.api.model.eam.EamMtoolMtPj;
import pro.shushi.pamirs.meta.annotation.Function;
import pro.shushi.pamirs.meta.annotation.Model;
import pro.shushi.pamirs.meta.annotation.fun.extern.Slf4j;
import pro.shushi.pamirs.meta.api.dto.condition.Pagination;
import pro.shushi.pamirs.meta.constant.FunctionConstants;
import pro.shushi.pamirs.meta.enmu.FunctionOpenEnum;
import pro.shushi.pamirs.meta.enmu.FunctionTypeEnum;

import java.util.List;
import java.util.Map;

/**
 * 保养项自定义
 */
@Slf4j
@Component
@Model.model(EamMtoolMtPj.MODEL_MODEL)
public class EamMtoolMtPjAction {

    /**
     * 搜索条件中有岗位名称，模拟根据岗位名称查询部门（且岗位名称和部门不在一张表中, 但需要存在关联关系）
     *
     * 非存储字段搜索：https://doc.oinone.top/dai-ma-shi-jian/5592.html
     * @param page
     * @param queryWrapper
     * @return
     */
    @Function.Advanced(type = FunctionTypeEnum.QUERY, displayName = "查询列表")
    @Function.fun(FunctionConstants.queryPage)
    @Function(openLevel = {FunctionOpenEnum.API})
    public Pagination<EamMtoolMtPj> queryPage(Pagination<EamMtoolMtPj> page, QueryWrapper<EamMtoolMtPj> queryWrapper) {
        List<EamMtoolMtPj> list = page.getContent();
        // 非存储字段前端在发起请求拼接查询条件都放在QueryData中
        Map<String, Object> queryData = queryWrapper.getQueryData();
        //暂时写死条件 TODO 获取页面的参数
        String orgCode = "001";

//        List<EamMtoolMtPj> mtPjList = new EamMtoolMtPj().queryList(Pops.<EamMtoolMtPj>lambdaQuery()
//                .from(EamMtoolMtPj.MODEL_MODEL).eq(EamMtoolMtPj::getOrgCode, orgCode));
//        if (CollectionUtils.isNotEmpty(mtPjList)) {
//            List<String> pjCodes = ListUtils.transform(mtPjList, EamMtoolMtPj::getPjCode);
//            queryWrapper.lambda().in(EamMtoolMtPj::getPjCode, pjCodes);
//        } else {
//            return page;
//        }
        queryWrapper.setOriginRsql("(1==1)");
        queryWrapper.lambda().in(EamMtoolMtPj::getOrgCode,orgCode);
        page = new EamMtoolMtPj().queryPage(page, queryWrapper);

        return page;
    }



}
